home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / lha_axeman / slidehuf.h < prev    next >
C/C++ Source or Header  |  1995-09-01  |  4KB  |  149 lines

  1. /*
  2.  * slidehuf.h -- part of LHa for UNIX
  3.  *
  4.  *    modified: Feb. 26, 1992, Masaru Oki.
  5.  */
  6.  
  7. #include <stdio.h>
  8. #include <errno.h>
  9.  
  10. #if defined(__STDC__) || defined(AIX)
  11. #include <limits.h>
  12. #else
  13. #ifndef CHAR_BIT
  14. #define CHAR_BIT  8
  15. #endif
  16. #ifndef UCHAR_MAX
  17. #define UCHAR_MAX ((1<<(sizeof(unsigned char)*8))-1)
  18. #endif
  19. #ifndef USHRT_MAX
  20. #define USHRT_MAX ((1<<(sizeof(unsigned short)*8))-1)
  21. #endif
  22. #ifndef SHRT_MAX
  23. #define SHRT_MAX ((1<<(sizeof(short)*8-1))-1)
  24. #endif
  25. #ifndef SHRT_MIN
  26. #define SHRT_MIN (SHRT_MAX-USHRT_MAX)
  27. #endif
  28. #endif /* not __STDC__ */
  29.  
  30. /* #include "errmes.h" */
  31. /* Your C-Compiler has no 'void' (from lharc.h) */
  32. #if !defined(__STDC__) && !defined(AIX)  /* NO_VOID */
  33. #define void
  34. #endif
  35.  
  36. struct encode_option {
  37. #if defined(__STDC__) || defined(AIX)
  38.     void (*output)();
  39.     void (*encode_start)();
  40.     void (*encode_end)();
  41. #else
  42.     int (*output)();
  43.     int (*encode_start)();
  44.     int (*encode_end)();
  45. #endif
  46. };
  47.  
  48. struct decode_option {
  49.     unsigned short (*decode_c)();
  50.     unsigned short (*decode_p)();
  51. #if defined(__STDC__) || defined(AIX)
  52.     void (*decode_start)();
  53. #else
  54.     int (*decode_start)();
  55. #endif
  56. };
  57.  
  58. /* from slide.c */
  59. #define MAX_DICBIT    13 
  60. #define MAX_DICSIZ (1 << MAX_DICBIT)
  61. #define MATCHBIT   8    /* bits for MAXMATCH - THRESHOLD */
  62. #define MAXMATCH 256    /* formerly F (not more than UCHAR_MAX + 1) */
  63. #define THRESHOLD  3    /* choose optimal value */
  64.  
  65. extern int errno;
  66. extern int unpackable;
  67. extern unsigned long origsize, compsize;
  68. extern unsigned short dicbit;
  69. extern unsigned short maxmatch;
  70. extern unsigned long count;
  71. extern unsigned short loc;
  72. extern unsigned char *text;
  73.  
  74. /* from huf.c */
  75. #define NC (UCHAR_MAX + MAXMATCH + 2 - THRESHOLD)
  76.             /* alphabet = {0, 1, 2, ..., NC - 1} */
  77. #define CBIT 9  /* $\lfloor \log_2 NC \rfloor + 1$ */
  78. #define USHRT_BIT 16    /* (CHAR_BIT * sizeof(ushort)) */
  79.  
  80. extern unsigned short    left[], right[];
  81. extern unsigned char    c_len[], pt_len[];
  82. extern unsigned short    c_freq[], c_table[], c_code[],
  83.             p_freq[], pt_table[], pt_code[],
  84.             t_freq[];
  85.  
  86. extern void output_st1();
  87. extern unsigned char *alloc_buf(void);
  88. extern void encode_start_st1(void);
  89. extern void encode_end_st1(void);
  90. extern unsigned short decode_c_st1(void);
  91. extern unsigned short decode_p_st1(void);
  92. extern void decode_start_st1(void);
  93.  
  94. /* from shuf.c */
  95. extern void decode_start_st0(void);
  96. extern void encode_p_st0(/*unsigned short j*/);
  97. extern void encode_start_fix(void);
  98. extern void decode_start_fix(void);
  99. extern unsigned short decode_c_st0(void);
  100. extern unsigned short decode_p_st0(void);
  101.  
  102. /* from dhuf.c */
  103. extern unsigned int n_max;
  104.  
  105. extern void start_c_dyn(void);
  106. extern void decode_start_dyn(void);
  107. extern unsigned short decode_c_dyn(void);
  108. extern unsigned short decode_p_dyn(void);
  109. extern void output_dyn(/*int code, unsigned int pos*/);
  110. extern void encode_end_dyn(void);
  111.  
  112. /* from larc.c */
  113. extern unsigned short decode_c_lzs(void);
  114. extern unsigned short decode_p_lzs(void);
  115. extern unsigned short decode_c_lz5(void);
  116. extern unsigned short decode_p_lz5(void);
  117. extern void decode_start_lzs(void);
  118. extern void decode_start_lz5(void);
  119.  
  120. /* from maketbl.c */
  121. /* void make_table(short nchar, uchar bitlen[],
  122.            short tablebits, ushort table[]); */
  123. extern void make_table(/*int nchar, uchar bitlen[],
  124.              int tablebits, ushort table[]*/);
  125.  
  126. /* from maketree.c */
  127. /* void make_code(short n, uchar len[], ushort code[]);
  128. short make_tree(short nparm, ushort freqparm[], 
  129.                 uchar lenparm[], ushort codeparam[]); */
  130. extern void make_code(/*int n, uchar len[], ushort code[]*/);
  131. extern short make_tree(/*int nparm, ushort freqparm[], 
  132.              uchar lenparm[], ushort codeparam[]*/);
  133.  
  134. /* from crcio.c */
  135. extern FILE *infile, *outfile;
  136. extern unsigned short crc, bitbuf;
  137. extern int dispflg;
  138.  
  139. extern void make_crctable(void);
  140. extern unsigned short calccrc(/*uchar *p, uint n*/);
  141. extern void fillbuf(/*uchar n*/);
  142. extern unsigned short getbits(/*uchar n*/);
  143. extern void putcode(/*uchar n, ushort x*/);
  144. extern void putbits(/*uchar n, ushort x*/);
  145. extern int fread_crc(/*uchar *p, int n, FILE *f*/);
  146. extern void fwrite_crc(/*uchar *p, int n, FILE *f*/);
  147. extern void init_getbits(void);
  148. extern void init_putbits(void);
  149.